<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>While loop</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/While_loop"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-While_loop rootpage-While_loop skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">While loop</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks"><tbody><tr><th class="sidebar-title"><a href="Control_flow#Loops" title="Control flow">Loop constructs</a></th></tr><tr><td class="sidebar-content">
<div class="hlist">
<ul><li><a href="Do_while_loop" title="Do while loop">Do while loop</a></li>
<li><a href="For_loop" title="For loop">For loop</a></li>
<li><a href="Foreach_loop" title="Foreach loop">Foreach loop</a></li>
<li><a href="Infinite_loop" title="Infinite loop">Infinite loop</a></li>
<li><a href="Control_flow" title="Control flow">Control flow</a></li></ul>
</div></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p>In most computer <a href="Programming_language" title="Programming language">programming languages</a>, a <b>while loop</b> is a <a href="Control_flow" title="Control flow">control flow</a> <a href="Statement_(computer_science)" title="Statement (computer science)">statement</a> that allows code to be executed repeatedly based on a given <a href="Boolean_data_type" title="Boolean data type">Boolean</a> condition. The <i>while</i> loop can be thought of as a repeating <a href="Conditional_(computer_programming)" title="Conditional (computer programming)">if statement</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>The <i>while</i> construct consists of a block of code and a condition/expression.<sup id="cite_ref-:0_1-0" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> The condition/expression is evaluated, and if the condition/expression is <i>true</i>,<sup id="cite_ref-:0_1-1" class="reference"><a href="#cite_note-:0-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> the code within all of their following in the block is executed. This repeats until the condition/expression becomes <a href="False_(logic)" title="False (logic)">false</a>. Because the <i>while</i> loop checks the condition/expression before the block is executed, the control structure is often also known as a <b>pre-test loop</b>. Compare this with the <a href="Do_while_loop" title="Do while loop"><i>do while</i> loop</a>, which tests the condition/expression <i>after</i> the loop has executed.
</p><p>For example, in the languages <a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>,<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> <a href="Objective-C" title="Objective-C">Objective-C</a>, and <a href="C%2B%2B" title="C++">C++</a>, (which <a href="Polyglot_(computing)" title="Polyglot (computing)">use the same syntax</a> in this case), the code fragment
</p>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span class="kt">int</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"x = %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="p">);</span>
<span class="w"> </span><span class="n">x</span><span class="o">++</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<p>first checks whether x is less than 5, which it is, so then the {loop body} is entered, where the <i>printf</i> function is run and x is incremented by 1. After completing all the statements in the loop body, the condition, (x < 5), is checked again, and the loop is executed again, this process repeating until the <a href="Variable_(computer_science)" title="Variable (computer science)">variable</a> x has the value 5.
</p><p>It is possible, and in some cases desirable, for the condition to <i>always</i> evaluate to true, creating an <a href="Infinite_loop" title="Infinite loop">infinite loop</a>. When such a loop is created intentionally, there is usually another control structure (such as a <a href="Control_flow" title="Control flow">break</a> statement) that controls termination of the loop.
For example:
</p>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nb">true</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// do complicated stuff</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">someCondition</span><span class="p">)</span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span>
<span class="w"> </span><span class="c1">// more stuff</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Demonstrating_while_loops">Demonstrating <i>while</i> loops</h2></div>
<p>These <i>while</i> loops will calculate the <a href="Factorial" title="Factorial">factorial</a> of the number 5:
</p>
<div class="mw-heading mw-heading3"><h3 id="ActionScript_3">ActionScript 3</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Further information: <a href="ActionScript_3.0" class="mw-redirect" title="ActionScript 3.0">ActionScript 3.0</a></div>
<div class="mw-highlight mw-highlight-lang-actionscript mw-content-ltr" dir="ltr"><pre><span class="k">var</span><span class="w"> </span><span class="nx">counter</span><span class="o">:</span><span class="w"> </span><span class="nb">int</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="o">;</span>
<span class="k">var</span><span class="w"> </span><span class="nx">factorial</span><span class="o">:</span><span class="w"> </span><span class="nb">int</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="o">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="nx">counter</span><span class="o">;</span>
<span class="w"> </span><span class="nx">counter</span><span class="o">--;</span>
<span class="p">}</span>
<span class="nx">Printf</span><span class="p">(</span><span class="s2">"Factorial = %d"</span><span class="o">,</span><span class="w"> </span><span class="nx">factorial</span><span class="p">);</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Ada">Ada</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Ada_(programming_language)" title="Ada (programming language)">Ada (programming language)</a></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">The Wikibook <i><a href="https://en.wikibooks.org/wiki/Ada_Programming" class="extiw external" title="wikibooks:Ada Programming">Ada_Programming</a></i> has a page on the topic of: <i><b><a href="https://en.wikibooks.org/wiki/Ada_Programming/Control" class="extiw external" title="wikibooks:Ada Programming/Control">Control</a></b></i></div></div>
</div>
<div class="mw-highlight mw-highlight-lang-ada mw-content-ltr" dir="ltr"><pre><span class="kn">with</span> <span class="n">Ada.Integer_Text_IO</span><span class="p">;</span>
<span class="kd">procedure</span> <span class="nf">Factorial</span> <span class="kr">is</span>
<span class="n">Counter</span> <span class="p">:</span> <span class="kt">Integer</span> <span class="p">:=</span> <span class="mi">5</span><span class="p">;</span>
<span class="n">Factorial</span> <span class="p">:</span> <span class="kt">Integer</span> <span class="p">:=</span> <span class="mi">1</span><span class="p">;</span>
<span class="kr">begin</span>
<span class="kr">while</span> <span class="n">Counter</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">loop</span>
<span class="n">Factorial</span> <span class="p">:=</span> <span class="n">Factorial</span> <span class="o">*</span> <span class="n">Counter</span><span class="p">;</span>
<span class="n">Counter</span> <span class="p">:=</span> <span class="n">Counter</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
<span class="kr">end</span> <span class="kr">loop</span><span class="p">;</span>
<span class="n">Ada</span><span class="p">.</span><span class="n">Integer_Text_IO</span><span class="p">.</span><span class="n">Put</span> <span class="p">(</span><span class="n">Factorial</span><span class="p">);</span>
<span class="kr">end</span> <span class="nf">Factorial</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="APL">APL</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="APL_(programming_language)" title="APL (programming language)">APL (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-apl mw-content-ltr" dir="ltr"><pre><span class="nv">counter</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="m">5</span>
<span class="nv">factorial</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="m">1</span>
<span class="bp">:</span><span class="nv">While</span><span class="w"> </span><span class="nv">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="m">0</span>
<span class="w"> </span><span class="nv">factorial</span><span class="w"> </span><span class="o">×</span><span class="kd">←</span><span class="w"> </span><span class="nv">counter</span>
<span class="w"> </span><span class="nv">counter</span><span class="w"> </span><span class="o">-</span><span class="kd">←</span><span class="w"> </span><span class="m">1</span>
<span class="bp">:</span><span class="nv">EndWhile</span>
<span class="vg">⎕</span><span class="w"> </span><span class="kd">←</span><span class="w"> </span><span class="nv">factorial</span>
</pre></div>
<p>or simply
</p>
<div class="mw-highlight mw-highlight-lang-apl mw-content-ltr" dir="ltr"><pre><span class="o">!</span><span class="m">5</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="AutoHotkey">AutoHotkey</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="AutoHotkey" title="AutoHotkey">AutoHotkey</a></div>
<div class="mw-highlight mw-highlight-lang-autohotkey mw-content-ltr" dir="ltr"><pre><span class="n">counter</span> <span class="o">:=</span> <span class="mi">5</span>
<span class="n">factorial</span> <span class="o">:=</span> <span class="mi">1</span>
<span class="nb">While</span> <span class="n">counter</span> <span class="o">></span> <span class="mi">0</span>
<span class="n">factorial</span> <span class="o">*=</span> <span class="n">counter</span><span class="o">--</span>
<span class="nb">MsgBox</span> <span class="o">%</span> <span class="n">factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Small_Basic">Small Basic</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Microsoft_Small_Basic" title="Microsoft Small Basic">Microsoft Small Basic</a></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="c">' Counter = 5</span>
<span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c">' initial value of variable "factorial"</span>
<span class="k">While</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">counter</span>
<span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="n">TextWindow</span><span class="p">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="n">counter</span><span class="p">)</span>
<span class="n">EndWhile</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Visual_Basic">Visual Basic</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Visual_Basic" title="Visual Basic">Visual Basic</a></div>
<div class="mw-highlight mw-highlight-lang-vbnet mw-content-ltr" dir="ltr"><pre><span class="k">Dim</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Integer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="c">' init variable and set value</span>
<span class="k">Dim</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="ow">As</span><span class="w"> </span><span class="kt">Integer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c">' initialize factorial variable</span>
<span class="k">Do</span><span class="w"> </span><span class="k">While</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">counter</span>
<span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span>
<span class="k">Loop</span><span class="w"> </span><span class="c">' program goes here, until counter = 0</span>
<span class="c">'Debug.Print factorial ' Console.WriteLine(factorial) in Visual Basic .NET</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Bourne_(Unix)_shell">Bourne (Unix) shell</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Bourne_shell" title="Bourne shell">Bourne shell</a></div>
<div class="mw-highlight mw-highlight-lang-bash mw-content-ltr" dir="ltr"><pre><span class="nv">counter</span><span class="o">=</span><span class="m">5</span>
<span class="nv">factorial</span><span class="o">=</span><span class="m">1</span>
<span class="k">while</span><span class="w"> </span><span class="o">[</span><span class="w"> </span><span class="nv">$counter</span><span class="w"> </span>-gt<span class="w"> </span><span class="m">0</span><span class="w"> </span><span class="o">]</span><span class="p">;</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="nv">factorial</span><span class="o">=</span><span class="k">$((</span><span class="nv">factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nv">counter</span><span class="k">))</span>
<span class="w"> </span><span class="nv">counter</span><span class="o">=</span><span class="k">$((</span><span class="nv">counter</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="k">))</span>
<span class="k">done</span>
<span class="nb">echo</span><span class="w"> </span><span class="nv">$factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="C,_C++">C, C++</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="C_(programming_language)" title="C (programming language)">C (programming language)</a> and <a href="C%2B%2B" title="C++">C++</a></div>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">count</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">count</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">count</span><span class="o">--</span><span class="p">;</span>
<span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="n">factorial</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="ColdFusion_Markup_Language_(CFML)">ColdFusion Markup Language (CFML)</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="ColdFusion_Markup_Language" title="ColdFusion Markup Language">ColdFusion Markup Language</a></div>
<div class="mw-heading mw-heading4"><h4 id="Script_syntax">Script syntax</h4></div>
<div class="mw-highlight mw-highlight-lang-cfs mw-content-ltr" dir="ltr"><pre><span class="nv">counter</span> <span class="o">=</span> <span class="m">5</span><span class="p">;</span>
<span class="nv">factorial</span> <span class="o">=</span> <span class="m">1</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="nv">counter</span> <span class="o">></span> <span class="m">1</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">factorial</span> <span class="o">*=</span> <span class="nv">counter</span><span class="o">--</span><span class="p">;</span>
<span class="p">}</span>
<span class="nf">writeOutput</span><span class="p">(</span><span class="nv">factorial</span><span class="p">);</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="Tag_syntax">Tag syntax</h4></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Tag_(programming)" title="Tag (programming)">Tag (programming)</a></div>
<div class="mw-highlight mw-highlight-lang-cfm mw-content-ltr" dir="ltr"><pre><span class="nb"><cfset</span> <span class="nv">counter</span> <span class="o">=</span> <span class="m">5</span><span class="nb">></span>
<span class="nb"><cfset</span> <span class="nv">factorial</span> <span class="o">=</span> <span class="m">1</span><span class="nb">></span>
<span class="nb"><cfloop</span> <span class="nv">condition</span><span class="o">=</span><span class="s2">"counter GT 1"</span><span class="nb">></span>
<span class="nb"><cfset</span> <span class="nv">factorial</span> <span class="o">*=</span> <span class="nv">counter</span><span class="o">--</span><span class="nb">></span>
<span class="nb"></cfloop></span>
<span class="nb"><cfoutput></span><span class="p">#</span><span class="nv">factorial</span><span class="p">#</span><span class="nb"></cfoutput></span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Fortran">Fortran</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Fortran" title="Fortran">Fortran</a></div>
<div class="mw-highlight mw-highlight-lang-fortran mw-content-ltr" dir="ltr"><pre><span class="k">program </span><span class="n">FactorialProg</span>
<span class="w"> </span><span class="kt">integer</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span>
<span class="w"> </span><span class="kt">integer</span><span class="w"> </span><span class="kd">::</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">do while</span><span class="w"> </span><span class="p">(</span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">counter</span>
<span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">end do</span>
<span class="k"> print</span><span class="w"> </span><span class="o">*</span><span class="p">,</span><span class="w"> </span><span class="n">factorial</span>
<span class="k">end program </span><span class="n">FactorialProg</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Go">Go</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Go_(programming_language)" title="Go (programming language)">Go (programming language)</a></div>
<p>Go has no <i>while</i> statement, but it has the function of a <i>for</i> statement when omitting some elements of the <i>for</i> statement.
</p>
<div class="mw-highlight mw-highlight-lang-go mw-content-ltr" dir="ltr"><pre><span class="nx">counter</span><span class="p">,</span><span class="w"> </span><span class="nx">factorial</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span>
<span class="k">for</span><span class="w"> </span><span class="nx">counter</span><span class="w"> </span><span class="p">></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nx">counter</span><span class="p">,</span><span class="w"> </span><span class="nx">factorial</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nx">counter</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="nx">factorial</span><span class="o">*</span><span class="nx">counter</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Java,_C#,_D">Java, C#, D</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Java_(programming_language)" title="Java (programming language)">Java (programming language)</a>, <a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C Sharp (programming language)</a>, and <a href="D_(programming_language)" title="D (programming language)">D (programming language)</a></div>
<p>The code for the loop is the same for Java, C# and D:
</p>
<div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span class="kt">int</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">5</span><span class="p">;</span>
<span class="kt">int</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="m">1</span><span class="p">)</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">counter</span><span class="o">--</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="JavaScript">JavaScript</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="JavaScript" title="JavaScript">JavaScript</a></div>
<div class="mw-highlight mw-highlight-lang-javascript mw-content-ltr" dir="ltr"><pre><span class="kd">let</span><span class="w"> </span><span class="nx">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">5</span><span class="p">;</span>
<span class="kd">let</span><span class="w"> </span><span class="nx">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mf">1</span><span class="p">)</span>
<span class="w"> </span><span class="nx">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="nx">counter</span><span class="o">--</span><span class="p">;</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">factorial</span><span class="p">);</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Lua">Lua</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Lua_(programming_language)" class="mw-redirect" title="Lua (programming language)">Lua (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><pre><span class="n">counter</span> <span class="o">=</span> <span class="mi">5</span>
<span class="n">factorial</span> <span class="o">=</span> <span class="mi">1</span>
<span class="kr">while</span> <span class="n">counter</span> <span class="o">></span> <span class="mi">0</span> <span class="kr">do</span>
<span class="n">factorial</span> <span class="o">=</span> <span class="n">factorial</span> <span class="o">*</span> <span class="n">counter</span>
<span class="n">counter</span> <span class="o">=</span> <span class="n">counter</span> <span class="o">-</span> <span class="mi">1</span>
<span class="kr">end</span>
<span class="nb">print</span><span class="p">(</span><span class="n">factorial</span><span class="p">)</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="MATLAB,_Octave">MATLAB, Octave</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="MATLAB" title="MATLAB">MATLAB</a> and <a href="GNU_Octave" title="GNU Octave">GNU Octave</a></div>
<div class="mw-highlight mw-highlight-lang-matlab mw-content-ltr" dir="ltr"><pre><span class="n">counter</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span>
<span class="nb">factorial</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<span class="w"> </span><span class="nb">factorial</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="nb">factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">counter</span><span class="p">;</span><span class="w"> </span><span class="c">%Multiply</span>
<span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="p">=</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c">%Decrement</span>
<span class="k">end</span>
<span class="nb">factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Mathematica">Mathematica</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Wolfram_Mathematica" class="mw-redirect" title="Wolfram Mathematica">Wolfram Mathematica</a> and <a href="Wolfram_Language" title="Wolfram Language">Wolfram Language</a></div>
<div class="mw-highlight mw-highlight-lang-mathematica mw-content-ltr" dir="ltr"><pre><span class="n">Block</span><span class="p">[{</span><span class="n">counter</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span><span class="n">factorial</span><span class="o">=</span><span class="mi">1</span><span class="p">},</span><span class="w"> </span><span class="c">(*localize counter and factorial*)</span>
<span class="w"> </span><span class="n">While</span><span class="p">[</span><span class="n">counter</span><span class="o">></span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="c">(*While loop*)</span>
<span class="w"> </span><span class="n">factorial</span><span class="o">*=</span><span class="n">counter</span><span class="p">;</span><span class="w"> </span><span class="c">(*Multiply*)</span>
<span class="w"> </span><span class="n">counter</span><span class="o">--</span><span class="p">;</span><span class="w"> </span><span class="c">(*Decrement*)</span>
<span class="w"> </span><span class="p">];</span>
<span class="w"> </span><span class="n">factorial</span>
<span class="p">]</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Oberon,_Oberon-2,_Oberon-07,_Component_Pascal">Oberon, Oberon-2, Oberon-07, Component Pascal</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Oberon_(programming_language)" title="Oberon (programming language)">Oberon (programming language)</a>, <a href="Oberon-2" title="Oberon-2">Oberon-2</a>, <a href="Oberon-07" class="mw-redirect" title="Oberon-07">Oberon-07</a>, and <a href="Component_Pascal" title="Component Pascal">Component Pascal</a></div>
<div class="mw-highlight mw-highlight-lang-pascal mw-content-ltr" dir="ltr"><pre><span class="n">MODULE</span><span class="w"> </span><span class="n">Factorial</span><span class="o">;</span>
<span class="n">IMPORT</span><span class="w"> </span><span class="n">Out</span><span class="o">;</span>
<span class="k">VAR</span>
<span class="w"> </span><span class="n">Counter</span><span class="o">,</span><span class="w"> </span><span class="n">Factorial</span><span class="o">:</span><span class="w"> </span><span class="kt">INTEGER</span><span class="o">;</span>
<span class="k">BEGIN</span>
<span class="w"> </span><span class="n">Counter</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">5</span><span class="o">;</span>
<span class="w"> </span><span class="n">Factorial</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">1</span><span class="o">;</span>
<span class="w"> </span><span class="k">WHILE</span><span class="w"> </span><span class="n">Counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">DO</span>
<span class="w"> </span><span class="n">Factorial</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">Factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Counter</span><span class="o">;</span>
<span class="w"> </span><span class="nb">DEC</span><span class="p">(</span><span class="n">Counter</span><span class="p">)</span>
<span class="w"> </span><span class="k">END</span><span class="o">;</span>
<span class="w"> </span><span class="n">Out</span><span class="o">.</span><span class="n">Int</span><span class="p">(</span><span class="n">Factorial</span><span class="o">,</span><span class="mi">0</span><span class="p">)</span>
<span class="k">END</span><span class="w"> </span><span class="n">Factorial</span><span class="o">.</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Maya_Embedded_Language">Maya Embedded Language</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Maya_Embedded_Language" title="Maya Embedded Language">Maya Embedded Language</a></div>
<div class="mw-highlight mw-highlight-lang-perl mw-content-ltr" dir="ltr"><pre><span class="nb">int</span><span class="w"> </span><span class="nv">$counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span>
<span class="nb">int</span><span class="w"> </span><span class="nv">$factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="nb">int</span><span class="w"> </span><span class="nv">$multiplication</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nv">$counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nv">$multiplication</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nv">$factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nv">$counter</span><span class="p">;</span>
<span class="w"> </span><span class="nv">$counter</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="k">print</span><span class="p">(</span><span class="s">"Counter is: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nv">$counter</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">", multiplication is: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nv">$multiplication</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">"\n"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Nim">Nim</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Nim_(programming_language)" title="Nim (programming language)">Nim (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-nim mw-content-ltr" dir="ltr"><pre><span class="kd">var</span>
<span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="c"># Set counter value to 5</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="c"># Set factorial value to 1</span>
<span class="k">while</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">:</span><span class="w"> </span><span class="c"># While counter is greater than 0</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="c"># Set new value of factorial to counter.</span>
<span class="w"> </span><span class="n">dec</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="c"># Set the counter to counter - 1.</span>
<span class="n">echo</span><span class="w"> </span><span class="n">factorial</span>
</pre></div>
<p>Non-terminating while loop:
</p>
<div class="mw-highlight mw-highlight-lang-nim mw-content-ltr" dir="ltr"><pre><span class="k">while</span><span class="w"> </span><span class="kp">true</span><span class="p">:</span>
<span class="w"> </span><span class="n">echo</span><span class="w"> </span><span class="s">"Help! I'm stuck in a loop!"</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Pascal">Pascal</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal (programming language)</a></div>
<p>Pascal has two forms of the while loop, <b>while</b> and <b>repeat</b>. While repeats one statement (unless enclosed in a begin-end block) as long as the condition is true. The repeat statement repetitively executes a block of one or more statements through an <b>until</b> statement and continues repeating unless the condition is false. The main difference between the two is the while loop may execute zero times if the condition is initially false, the repeat-until loop always executes at least once.
</p>
<div class="mw-highlight mw-highlight-lang-pascal mw-content-ltr" dir="ltr"><pre><span class="k">program</span><span class="w"> </span><span class="n">Factorial1</span><span class="o">;</span>
<span class="k">var</span>
<span class="w"> </span><span class="n">Fv</span><span class="o">:</span><span class="w"> </span><span class="kt">integer</span><span class="o">;</span>
<span class="w"> </span><span class="k">procedure</span><span class="w"> </span><span class="nf">fact</span><span class="p">(</span><span class="n">counter</span><span class="o">:</span><span class="kt">integer</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">var</span>
<span class="w"> </span><span class="n">Factorial</span><span class="o">:</span><span class="w"> </span><span class="kt">integer</span><span class="o">;</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">Factorial</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">1</span><span class="o">;</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">Counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="k">do</span>
<span class="w"> </span><span class="k">begin</span>
<span class="w"> </span><span class="n">Factorial</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">Factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">Counter</span><span class="o">;</span>
<span class="w"> </span><span class="n">Counter</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">Counter</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="w"> </span><span class="nb">WriteLn</span><span class="p">(</span><span class="n">Factorial</span><span class="p">)</span>
<span class="w"> </span><span class="k">end</span><span class="o">;</span>
<span class="k">begin</span>
<span class="w"> </span><span class="nb">Write</span><span class="p">(</span><span class="s">'Enter a number to return its factorial: '</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="nb">readln</span><span class="p">(</span><span class="n">fv</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">repeat</span>
<span class="w"> </span><span class="n">fact</span><span class="p">(</span><span class="n">fv</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="nb">Write</span><span class="p">(</span><span class="s">'Enter another number to return its factorial (or 0 to quit): '</span><span class="p">)</span><span class="o">;</span>
<span class="w"> </span><span class="k">until</span><span class="w"> </span><span class="n">fv</span><span class="o">=</span><span class="mi">0</span><span class="o">;</span>
<span class="k">end</span><span class="o">.</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Perl">Perl</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Perl" title="Perl">Perl</a></div>
<div class="mw-highlight mw-highlight-lang-perl mw-content-ltr" dir="ltr"><pre><span class="k">my</span><span class="w"> </span><span class="nv">$counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span>
<span class="k">my</span><span class="w"> </span><span class="nv">$factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nv">$counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nv">$factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="nv">$counter</span><span class="o">--</span><span class="p">;</span><span class="w"> </span><span class="c1"># Multiply, then decrement</span>
<span class="p">}</span>
<span class="k">print</span><span class="w"> </span><span class="nv">$factorial</span><span class="p">;</span>
</pre></div>
<p><i>While</i> loops are frequently used for reading data line by line (as defined by the <code>$/</code> line separator) from open filehandles:
</p>
<div class="mw-highlight mw-highlight-lang-perl mw-content-ltr" dir="ltr"><pre><span class="nb">open</span><span class="w"> </span><span class="n">IN</span><span class="p">,</span><span class="w"> </span><span class="s">"<test.txt"</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="sr"><IN></span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">print</span><span class="p">;</span>
<span class="p">}</span>
<span class="nb">close</span><span class="w"> </span><span class="n">IN</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="PHP">PHP</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="PHP" title="PHP">PHP</a></div>
<div class="mw-highlight mw-highlight-lang-php mw-content-ltr" dir="ltr"><pre><span class="nv">$counter</span> <span class="o">=</span> <span class="mi">5</span><span class="p">;</span>
<span class="nv">$factorial</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
<span class="k">while</span> <span class="p">(</span><span class="nv">$counter</span> <span class="o">></span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$factorial</span> <span class="o">*=</span> <span class="nv">$counter</span><span class="o">--</span><span class="p">;</span> <span class="c1">// Multiply, then decrement.</span>
<span class="p">}</span>
<span class="k">echo</span> <span class="nv">$factorial</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="PL/I">PL/I</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="PL/I" title="PL/I">PL/I</a></div>
<div class="mw-highlight mw-highlight-lang-rexx mw-content-ltr" dir="ltr"><pre>declare<span class="w"> </span>counter<span class="w"> </span>fixed<span class="w"> </span>initial<span class="o">(</span><span class="m">5</span><span class="o">)</span><span class="err">;</span>
declare<span class="w"> </span>factorial<span class="w"> </span>fixed<span class="w"> </span>initial<span class="o">(</span><span class="m">1</span><span class="o">)</span><span class="err">;</span>
<span class="kr">do</span><span class="w"> </span><span class="kr">while</span><span class="o">(</span>counter<span class="w"> </span><span class="o">></span><span class="w"> </span><span class="m">0</span><span class="o">)</span>
<span class="w"> </span>factorial<span class="w"> </span><span class="o">=</span><span class="w"> </span>factorial<span class="w"> </span><span class="o">*</span><span class="w"> </span>counter<span class="err">;</span>
<span class="w"> </span>counter<span class="w"> </span><span class="o">=</span><span class="w"> </span>counter<span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="m">1</span><span class="err">;</span>
<span class="kr">end</span><span class="err">;</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Python">Python</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Python_(programming_language)" title="Python (programming language)">Python (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span class="n">counter</span> <span class="o">=</span> <span class="mi">5</span> <span class="c1"># Set the value to 5</span>
<span class="n">factorial</span> <span class="o">=</span> <span class="mi">1</span> <span class="c1"># Set the value to 1</span>
<span class="k">while</span> <span class="n">counter</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span> <span class="c1"># While counter(5) is greater than 0</span>
<span class="n">factorial</span> <span class="o">*=</span> <span class="n">counter</span> <span class="c1"># Set new value of factorial to counter.</span>
<span class="n">counter</span> <span class="o">-=</span> <span class="mi">1</span> <span class="c1"># Set the counter to counter - 1.</span>
<span class="nb">print</span><span class="p">(</span><span class="n">factorial</span><span class="p">)</span> <span class="c1"># Print the value of factorial.</span>
</pre></div>
<p>Non-terminating while loop:
</p>
<div class="mw-highlight mw-highlight-lang-python mw-content-ltr" dir="ltr"><pre><span class="k">while</span> <span class="kc">True</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Help! I'm stuck in a loop!"</span><span class="p">)</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Racket">Racket</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Racket_(programming_language)" title="Racket (programming language)">Racket (programming language)</a> and <a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme (programming language)</a></div>
<p>In Racket, as in other <a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a> implementations, a <i>named-let</i> is a popular way to implement loops:
</p>
<div class="mw-highlight mw-highlight-lang-racket mw-content-ltr" dir="ltr"><pre><span class="kn">#lang </span><span class="nn">racket</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<span class="p">(</span><span class="k">let</span><span class="w"> </span><span class="n">loop</span><span class="w"> </span><span class="p">()</span>
<span class="w"> </span><span class="p">(</span><span class="k">when</span><span class="w"> </span><span class="p">(</span><span class="nb">></span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<span class="w"> </span><span class="p">(</span><span class="k">set!</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="n">counter</span><span class="p">))</span>
<span class="w"> </span><span class="p">(</span><span class="k">set!</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="p">(</span><span class="nb">sub1</span><span class="w"> </span><span class="n">counter</span><span class="p">))</span>
<span class="w"> </span><span class="p">(</span><span class="n">loop</span><span class="p">)))</span>
<span class="p">(</span><span class="nb">displayln</span><span class="w"> </span><span class="n">factorial</span><span class="p">)</span>
</pre></div>
<p>Using a macro system, implementing a <i>while</i> loop is a trivial exercise (commonly used to introduce macros):
</p>
<div class="mw-highlight mw-highlight-lang-racket mw-content-ltr" dir="ltr"><pre><span class="kn">#lang </span><span class="nn">racket</span>
<span class="p">(</span><span class="k">define-syntax-rule</span><span class="w"> </span><span class="p">(</span><span class="n">while</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="n">body</span><span class="w"> </span><span class="k">...</span><span class="p">)</span><span class="w"> </span><span class="c1">; implements a while loop</span>
<span class="w"> </span><span class="p">(</span><span class="k">let</span><span class="w"> </span><span class="n">loop</span><span class="w"> </span><span class="p">()</span><span class="w"> </span><span class="p">(</span><span class="k">when</span><span class="w"> </span><span class="n">test</span><span class="w"> </span><span class="n">body</span><span class="w"> </span><span class="k">...</span><span class="w"> </span><span class="p">(</span><span class="n">loop</span><span class="p">))))</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="mi">5</span><span class="p">)</span>
<span class="p">(</span><span class="k">define</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span>
<span class="p">(</span><span class="n">while</span><span class="w"> </span><span class="p">(</span><span class="nb">></span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span>
<span class="w"> </span><span class="p">(</span><span class="k">set!</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="p">(</span><span class="nb">*</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="n">counter</span><span class="p">))</span>
<span class="w"> </span><span class="p">(</span><span class="k">set!</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="p">(</span><span class="nb">sub1</span><span class="w"> </span><span class="n">counter</span><span class="p">)))</span>
<span class="p">(</span><span class="nb">displayln</span><span class="w"> </span><span class="n">factorial</span><span class="p">)</span>
</pre></div>
<p>However, an imperative programming style is often discouraged in Scheme and Racket.
</p>
<div class="mw-heading mw-heading3"><h3 id="Ruby">Ruby</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-ruby mw-content-ltr" dir="ltr"><pre><span class="c1"># Calculate the factorial of 5</span>
<span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span>
<span class="k">while</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="mi">5</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">i</span>
<span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span>
<span class="k">end</span>
<span class="nb">puts</span><span class="w"> </span><span class="n">factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Rust">Rust</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Rust_(programming_language)" title="Rust (programming language)">Rust (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">counter</span><span class="p">;</span>
<span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="n">factorial</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Smalltalk">Smalltalk</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Smalltalk" title="Smalltalk">Smalltalk</a></div>
<p>Contrary to other languages, in Smalltalk a <i>while</i> loop is not a <a href="Language_construct" title="Language construct">language construct</a> but defined in the class <code>BlockClosure</code> as a method with one parameter, the body as a <a href="Closure_(computer_programming)" title="Closure (computer programming)">closure</a>, using self as the condition.
</p><p>Smalltalk also has a corresponding whileFalse: method.
</p>
<div class="mw-highlight mw-highlight-lang-smalltalk mw-content-ltr" dir="ltr"><pre><span class="o">|</span><span class="nv"> count factorial </span><span class="o">|</span>
<span class="nv">count</span> <span class="o">:=</span> <span class="m">5</span><span class="p">.</span>
<span class="nv">factorial</span> <span class="o">:=</span> <span class="m">1</span><span class="p">.</span>
[<span class="nv">count</span> <span class="nf">></span> <span class="m">0</span>] <span class="nb">whileTrue:</span>
[<span class="nv">factorial</span> <span class="o">:=</span> <span class="nv">factorial</span> <span class="nf">*</span> <span class="nv">count</span><span class="p">.</span>
<span class="nv">count</span> <span class="o">:=</span> <span class="nv">count</span> <span class="nf">-</span> <span class="m">1</span>]<span class="p">.</span>
<span class="nc">Transcript</span> <span class="nf">show:</span> <span class="nv">factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Swift">Swift</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Swift_(programming_language)" title="Swift (programming language)">Swift (programming language)</a></div>
<div class="mw-highlight mw-highlight-lang-swift mw-content-ltr" dir="ltr"><pre><span class="kd">var</span> <span class="nv">counter</span> <span class="p">=</span> <span class="mi">5</span> <span class="c1">// Set the initial counter value to 5</span>
<span class="kd">var</span> <span class="nv">factorial</span> <span class="p">=</span> <span class="mi">1</span> <span class="c1">// Set the initial factorial value to 1</span>
<span class="k">while</span> <span class="n">counter</span> <span class="o">></span> <span class="mi">0</span> <span class="p">{</span> <span class="c1">// While counter(5) is greater than 0</span>
<span class="n">factorial</span> <span class="o">*=</span> <span class="n">counter</span> <span class="c1">// Set new value of factorial to factorial x counter.</span>
<span class="n">counter</span> <span class="o">-=</span> <span class="mi">1</span> <span class="c1">// Set the new value of counter to counter - 1.</span>
<span class="p">}</span>
<span class="bp">print</span><span class="p">(</span><span class="n">factorial</span><span class="p">)</span> <span class="c1">// Print the value of factorial.</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Tcl">Tcl</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="Tcl" title="Tcl">Tcl</a></div>
<div class="mw-highlight mw-highlight-lang-tcl mw-content-ltr" dir="ltr"><pre><span class="k">set</span><span class="w"> </span>counter<span class="w"> </span><span class="mi">5</span>
<span class="k">set</span><span class="w"> </span>factorial<span class="w"> </span><span class="mi">1</span>
<span class="k">while</span><span class="w"> </span><span class="k">{</span><span class="nv">$counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="nv">0</span><span class="k">}</span><span class="w"> </span><span class="k">{</span>
<span class="w"> </span><span class="k">set</span><span class="w"> </span>factorial<span class="w"> </span><span class="k">[expr</span><span class="w"> </span><span class="nv">$factorial</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="nv">$counter</span><span class="k">]</span>
<span class="w"> </span><span class="nb">incr</span><span class="w"> </span>counter<span class="w"> </span><span class="o">-</span><span class="mi">1</span>
<span class="k">}</span>
<span class="nb">puts</span><span class="w"> </span><span class="nv">$factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="VEX">VEX</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="VEX_prefix" title="VEX prefix">VEX prefix</a></div>
<div class="mw-highlight mw-highlight-lang-csharp mw-content-ltr" dir="ltr"><pre><span class="kt">int</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">5</span><span class="p">;</span>
<span class="kt">int</span><span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="m">1</span><span class="p">;</span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">counter</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="m">1</span><span class="p">)</span>
<span class="w"> </span><span class="n">factorial</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="n">counter</span><span class="o">--</span><span class="p">;</span>
<span class="n">printf</span><span class="p">(</span><span class="s">"%d"</span><span class="p">,</span><span class="w"> </span><span class="n">factorial</span><span class="p">);</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="PowerShell">PowerShell</h3></div>
<div role="note" class="hatnote navigation-not-searchable">Further information: <a href="PowerShell" title="PowerShell">PowerShell</a></div>
<div class="mw-highlight mw-highlight-lang-powershell mw-content-ltr" dir="ltr"><pre><span class="nv">$counter</span> <span class="p">=</span> <span class="n">5</span>
<span class="nv">$factorial</span> <span class="p">=</span> <span class="n">1</span>
<span class="k">while</span> <span class="p">(</span><span class="nv">$counter</span><span class="p">)</span> <span class="p">{</span>
<span class="nv">$factorial</span> <span class="p">*=</span> <span class="nv">$counter</span><span class="p">--</span>
<span class="p">}</span>
<span class="nv">$factorial</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="While_(language)">While (language)</h3></div>
<p>While<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> is a simple programming language constructed from assignments, sequential composition, conditionals, and while statements, used in the theoretical analysis of imperative programming language <a href="Semantics_(computer_science)" title="Semantics (computer science)">semantics</a>.<sup id="cite_ref-NielsonNielson1999_4-0" class="reference"><a href="#cite_note-NielsonNielson1999-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-whiley mw-content-ltr" dir="ltr"><pre><span class="n">C</span> <span class="o">:=</span> <span class="mi">5</span><span class="p">;</span>
<span class="n">F</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span>
<span class="kr">while</span> <span class="p">(</span><span class="n">C</span> <span class="o">></span> <span class="mi">1</span><span class="p">)</span> <span class="kr">do</span>
<span class="n">F</span> <span class="o">:=</span> <span class="n">F</span> <span class="o">*</span> <span class="n">C</span><span class="p">;</span>
<span class="n">C</span> <span class="o">:=</span> <span class="n">C</span> <span class="o">-</span> <span class="mi">1</span><span class="p">;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Do_while_loop" title="Do while loop">Do while loop</a></li>
<li><a href="For_loop" title="For loop">For loop</a></li>
<li><a href="Foreach" class="mw-redirect" title="Foreach">Foreach</a></li>
<li><a href="Primitive_recursive_function" title="Primitive recursive function">Primitive recursive function</a></li>
<li><a href="General_recursive_function" title="General recursive function">General recursive function</a></li>
<li><a href="LOOP_(programming_language)" title="LOOP (programming language)">LOOP (programming language)</a> – a programming language with the property that the functions it can compute are exactly the primitive recursive functions</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-:0-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html">"The while and do-while Statements (The Java Tutorials > Learning the Java Language > Language Basics)"</a>. <i>Dosc.oracle.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-21</span></span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/library/2aeyhxcd.aspx">"while (C# reference)"</a>. <i>Msdn.microsoft.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-21</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://profs.sci.univr.it/~merro/files/WhileExtra_l.pdf">"Chapter 3: The While programming language"</a> <span class="cs1-format">(PDF)</span>. <i>Profs.sci.univr.it</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-21</span></span>.</cite></span>
</li>
<li id="cite_note-NielsonNielson1999-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-NielsonNielson1999_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFFlemming_NielsonHanne_R._NielsonChris_Hankin1999" class="citation book cs1">Flemming Nielson; Hanne R. Nielson; Chris Hankin (1999). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=RLjt0xSj8DcC"><i>Principles of Program Analysis</i></a>. Springer. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-65410-0</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">29 May</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite id="CITEREFIllingworth1997" class="citation book cs1">Illingworth, Valerie (11 December 1997). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/dictionaryofcomp00illi"><i>Dictionary of Computing</i></a></span>. Oxford Paperback Reference (4th ed.). Oxford University Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780192800466</bdi>.</cite></span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-02-26" href="https://en.wikipedia.org/wiki/?title=While_loop&oldid=1277722304">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>